Hsüan's Blog

2015-07-20

php 計算 session 數量時,沒有權限查看資料夾

今天研究下計算 session 數量

達到簡易快速計算線上人數

卻遇到檔案權限問題...

  • php 在 debian 預設的資料夾為/var/lib/php5
  • session 檔案都是sess_ 開頭,

一開始使用 shell 指令想直接抓出量

ls /var/lib/php5/sess_*|wc -l

用 root 運作良好,but 變成 php

$session_count=\exec('ls /var/lib/php5/sess_*|wc -l');

馬上因為權限問題掰掰。

查了一堆資料,session 本來就設定不給 www-data 使用

我也不想隨便改資料夾權限

就用其他方式解

寫一隻 session_count.sh 放在/var下

#!/bin/bash
ls /var/lib/php5/sess_*|wc -l

記得給執行權限

chmod u+x /var/session_count.sh

安裝 sudo

apt-get install sudo

編輯 sudoers

visudo

加上此行

www-data ALL = (root) NOPASSWD: /var/session_count.sh

之後在 php 內招換

$online_count = \exec("sudo /var/session_count.sh 2>&1");
if (!preg_match('/^\d+$/', $online_count)) {
	$online_count = -1;
}

就得到 session 數量啦!

© 2019 ~ 2023Hsüan, Powered by Gatsby, Theme Material UI